package br.unicamp.ic.sgct.client.aplicacao.usuario;

import br.unicamp.ic.sgct.client.dominio.exception.InfraException;
import br.unicamp.ic.sgct.client.dominio.to.ParticipanteTO;
import br.unicamp.ic.sgct.client.dominio.to.UsuarioTO;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import java.util.List;

/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath("usuario")
public interface UsuarioService extends RemoteService {
	String _RELATIVE_PATH = "usuario";

	UsuarioTO inscrever(UsuarioTO usuario, Long idConferencia) throws InfraException;
        /**
	 *
	 * @return boolean
	 *
	 * @throws InfraException
	 * @throws Exception
	 */
	public UsuarioTO obterUsuario() throws InfraException, Exception;

        public ParticipanteTO obterParticipanteConferencia(Long idConferencia) throws InfraException, Exception;

        public List<UsuarioTO> obterParticipacoesConferencia(Long idConferencia) throws InfraException, Exception;

        public String obterUsername() throws InfraException, Exception;

        public boolean temPerfil(String perfil) throws InfraException, Exception;

        public List<ParticipanteTO> obterParticipantesConferencia(Long idConferencia) throws InfraException, Exception;

        void cancelar(UsuarioTO usuario) throws InfraException;

}